/*
 * PARTIE COMMUNE: les messages
 */
package common;

import java.io.*;
import java.net.InetAddress;

/**
 *
 * @author Bazile, Doutre
 */
public class Common {

    private static void send(Message mess) {

        try {

            System.out.println("Ecriture dans le fichier");
            // Cette ligne sera à mchanger pour un socket.

            FileOutputStream fichier = new FileOutputStream("salut2.ser");
            ObjectOutputStream oos = new ObjectOutputStream(fichier);
            oos.writeObject(mess);
            oos.flush();
            oos.close();


        } catch (Exception e) {
            System.err.println(e);
        }

    }

    private static void receive(FileInputStream fic) {

        try {
           ObjectInputStream ois = new ObjectInputStream(fic);
           Object mess = ois.readObject();
          
           
           if (mess instanceof Hello){
               Hello mess2 = (Hello) mess;
               System.out.println("Adresse :" + mess2.getAddr());
               System.out.println("Nom :"+ mess2.getUsername());
           } else if(mess instanceof Bye) {
                Bye mess2 = (Bye) mess;
                // TODO: Mise à jour de la liste des users
                //TODO: Envoie au GUI qui affichera " truc s'est déconnecté"
               
           } else if(mess instanceof TransfertFileRequest) {
                TransfertFileRequest mess2 = (TransfertFileRequest) mess;
                // TODO: Afficher à l'utilisateur la demande de transfert de fichier
           } else if(mess instanceof TransfertFileAccept) {
                TransfertFileAccept mess2 = (TransfertFileAccept) mess;

           } else if(mess instanceof Text) {
                Text mess2 = (Text) mess;
                // TODO : Afficher le message dans la bonne conversation
           } else if(mess instanceof Fichier) {
                Fichier mess2 = (Fichier) mess;
                
                // TODO : Enregistrer le fichier dans l'ordi
           }
           
        } catch (java.io.IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    
}
/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
        try {
            Hello salut = new Hello("toto", InetAddress.getLocalHost(), true);
             FileInputStream fichier2 = new FileInputStream("salut2.ser");
            File fichier = new File("A.avi");
            Fichier fifi = new Fichier(InetAddress.getLocalHost(),fichier);
            send(salut);

            receive(fichier2);
            
        } catch (Exception e) {
            System.err.println(e);
        }
     


    }
}
